/**
  \file dawg.h
  \author Francis Girard
  \date 6 march 2012
  
  Dawg read access utilities.
*/


/*
 *  Copyright (C) 2012, Francis Girard
 *
 *  This program is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  This program is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef __dawg_h__
#define __dawg_h__

/*
  PROCESSING DAWG_EXPORT_DLL
*/
#ifndef DAWG_EXPORT_DLL
#ifdef DO_DAWG_EXPORT_DLL
#define DAWG_EXPORT_DLL __declspec(dllexport)
#else
#define DAWG_EXPORT_DLL
#endif
#endif

/*
  PROCESSING DAWG_EXTERN_C
*/
#ifdef DAWG_EXTERN_C
#undef DAWG_EXTERN_C
#endif

#ifdef __cplusplus
#define DAWG_EXTERN_C extern "C"
#else
#define DAWG_EXTERN_C
#endif

#include <stdio.h>

typedef void* H_DAWG;
DAWG_EXPORT_DLL DAWG_EXTERN_C H_DAWG dawg_create(const char* pkcFName);
DAWG_EXPORT_DLL DAWG_EXTERN_C void dawg_destroy(H_DAWG hdawg);
DAWG_EXPORT_DLL DAWG_EXTERN_C char* dawg_find_longest(H_DAWG hDawg, char* pText);
DAWG_EXPORT_DLL DAWG_EXTERN_C void dawg_dump(H_DAWG hDawg, FILE* pOutFile);
DAWG_EXPORT_DLL DAWG_EXTERN_C void dawg_dump_tree(H_DAWG hDawg, FILE* pOutFile);

/* #ifndef __dawg_h__ */
#endif

